ASP.Net এ সেশন (Session) এবং কুকিজ (Cookies) ব্যবহৃত হয় ব্যবহারকারীর তথ্য সংরক্ষণ এবং পরবর্তীতে তা অ্যাক্সেস করার জন্য। সেশন এবং কুকিজের ব্যবস্থাপনা ওয়েব অ্যাপ্লিকেশনের প্রয়োজনীয় অংশ, যেখানে ব্যবহারকারীর স্টেট সংরক্ষণ এবং তাদের জন্য কাস্টমাইজড অভিজ্ঞতা তৈরি করা হয়।
সেশন হলো একটি সার্ভার-সাইড স্টোরেজ ব্যবস্থা যা ওয়েব পেজের মধ্যে ব্যবহারকারীর তথ্য সংরক্ষণ করতে সহায়তা করে। সেশন সাধারণত এক ব্যবহারকারী দ্বারা পরবর্তী অনুরোধগুলির মধ্যে তথ্য সংরক্ষণ করে। সেশন সাধারণত ব্যবহারকারীর লগইন তথ্য বা ব্যবহারকারীর প্রাসঙ্গিক ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।
সেশন সেট করা:
Session["UserName"] = "JohnDoe";
Session["UserRole"] = "Admin";
সেশন থেকে ডেটা পড়া:
string userName = Session["UserName"] as string;
string userRole = Session["UserRole"] as string;
সেশন ডেটা মুছে ফেলা:
Session.Remove("UserName");
সেশন শেষ করা:
Session.Abandon();
সেশন মেয়াদ শেষ হওয়ার সময়টি web.config
ফাইলে কনফিগার করা যায়:
<configuration>
<system.web>
<sessionState timeout="20" />
</system.web>
</configuration>
এখানে, টাইমআউট হল ২০ মিনিট।
কুকিজ হলো ক্লায়েন্ট-সাইডে সংরক্ষিত ছোট ডেটা ফাইল যা ব্যবহারকারীকে সার্ভারে পাঠানো যায়। কুকিজ সাধারণত ব্যবহারকারীর পছন্দ, লগইন তথ্য, অথবা ট্র্যাকিং ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।
কুকি সেট করা:
HttpCookie userCookie = new HttpCookie("UserName");
userCookie.Value = "JohnDoe";
userCookie.Expires = DateTime.Now.AddDays(7); // কুকি ৭ দিন থাকবে
Response.Cookies.Add(userCookie);
কুকি থেকে ডেটা পড়া:
HttpCookie userCookie = Request.Cookies["UserName"];
if (userCookie != null)
{
string userName = userCookie.Value;
}
কুকি মুছে ফেলা:
if (Request.Cookies["UserName"] != null)
{
HttpCookie userCookie = new HttpCookie("UserName");
userCookie.Expires = DateTime.Now.AddDays(-1); // কুকি এক্সপায়ার করা হচ্ছে
Response.Cookies.Add(userCookie);
}
কুকির জীবনকাল Expires
প্রপার্টি দ্বারা কনফিগার করা হয়, যা কুকির মেয়াদ ঠিক করে।
বৈশিষ্ট্য | সেশন (Session) | কুকি (Cookie) |
---|---|---|
সংরক্ষণ স্থান | সার্ভার সাইড | ক্লায়েন্ট সাইড |
মেয়াদ | ব্রাউজার বন্ধ হলে শেষ হয় | নির্ধারিত সময় পর্যন্ত অথবা ম্যানুয়ালি মুছে ফেলা না হলে স্থায়ী হতে পারে |
ডেটা সাইজ | বড় আকারের ডেটা রাখতে পারে | ছোট আকারের ডেটা সংরক্ষণ করা যায় |
সিকিউরিটি | বেশি নিরাপদ কারণ এটি সার্ভারে থাকে | কম নিরাপদ, ব্যবহারকারীর ব্রাউজারে থাকে |
কনফিগারেশন | সেশন টাইমআউট web.config দ্বারা নির্ধারিত হয় | কুকি সেটিংস ব্রাউজার থেকে নিয়ন্ত্রিত |
সেশন এবং কুকি ব্যবস্থাপনা ASP.Net অ্যাপ্লিকেশনে গুরুত্বপূর্ণ ভূমিকা পালন করে, যেখানে সেশন ডেটা সার্ভারে সংরক্ষিত এবং ক্লায়েন্টের জন্য অস্থায়ীভাবে ব্যবহৃত হয়, আর কুকি ডেটা ব্রাউজারে সংরক্ষিত এবং স্থায়ী হতে পারে। এগুলির সঠিক ব্যবহার অ্যাপ্লিকেশনের পারফরম্যান্স এবং সিকিউরিটি বজায় রাখতে সাহায্য করে।
সেশন (Session) হলো একটি টেম্পোরারি ডেটা স্টোরেজ যা ব্যবহারকারীর ব্রাউজার এবং সার্ভারের মধ্যে তথ্য সংরক্ষণ করতে ব্যবহৃত হয়। এটি সাধারণত ব্যবহারকারীর নির্দিষ্ট সেশন এর মধ্যে থাকা ডেটা সংরক্ষণ এবং অ্যাক্সেস করার জন্য ব্যবহৃত হয়, যেমন লগইন তথ্য, ব্যবহারকারীর পছন্দসমূহ বা অন্য কোনো ব্যক্তিগত তথ্য। সেশন ব্যবহারকারীকে বিভিন্ন পেজের মধ্যে ডেটা শেয়ার করার সুবিধা দেয়, যেহেতু HTTP একটি স্টেটলেস প্রোটোকল, অর্থাৎ প্রতিটি রিকোয়েস্টের পরিমাণ একে অপরের থেকে আলাদা।
ASP.Net এ সেশন হ্যান্ডল করার জন্য Session State ব্যবহৃত হয়। এটি একধরনের ইন-মেমরি স্টোরেজ যেখানে ব্যবহারকারীের ডেটা রাখা হয় এবং সার্ভারের মধ্যে সংরক্ষিত থাকে যতক্ষণ না পর্যন্ত ব্যবহারকারীর ব্রাউজার বন্ধ হয় বা সেশন এক্সপায়ার হয়।
ASP.Net এ সেশন পরিচালনার জন্য সার্ভার একটি ইউনিক সেশন আইডি তৈরি করে, যেটি ব্যবহারকারীর ব্রাউজারে একটি cookie হিসেবে সংরক্ষিত হয়। এই সেশন আইডি ব্যবহার করে সার্ভার প্রতিটি রিকোয়েস্টের সাথে সেশন ডেটা সম্পর্কিত তথ্য খুঁজে পায় এবং সে অনুযায়ী রেসপন্স দেয়।
আপনি সেশন ডেটা সংরক্ষণ করতে পারেন Session অবজেক্ট ব্যবহার করে।
public IActionResult Login(string username, string password)
{
// সঠিক লগইন যাচাই করা
if (username == "admin" && password == "password")
{
// সেশন ডেটা সেট করা
Session["User"] = username;
return RedirectToAction("Dashboard");
}
else
{
return View();
}
}
সেশন থেকে ডেটা রিট্রিভ করতে, আপনি সেশন অবজেক্টের মাধ্যমে সেভ করা ডেটা অ্যাক্সেস করতে পারেন।
public IActionResult Dashboard()
{
// সেশন থেকে ব্যবহারকারীর নাম রিটার্ন করা
var username = Session["User"] as string;
if (username != null)
{
ViewBag.Message = "Welcome, " + username;
return View();
}
else
{
return RedirectToAction("Login");
}
}
সেশন ডেটা মুছতে Session.Remove() অথবা Session.Abandon() ব্যবহার করা যেতে পারে।
public IActionResult Logout()
{
// সেশন ভেরিয়েবল মুছে ফেলা
Session.Remove("User");
return RedirectToAction("Login");
}
সেশন টাইমআউট: সেশন ডেটা স্বয়ংক্রিয়ভাবে কিছু সময় পর মুছে যায়। আপনি web.config ফাইলে সেশন টাইমআউট কনফিগার করতে পারেন।
উদাহরণ:
<configuration>
<system.web>
<sessionState timeout="30" /> <!-- সেশন 30 মিনিট পর এক্সপায়ার হবে -->
</system.web>
</configuration>
ASP.Net সেশন ব্যবস্থাপনা একটি শক্তিশালী উপায় যা ব্যবহারকারীর ডেটা সার্ভারের মধ্যে সংরক্ষণ করে এবং প্রতিটি HTTP রিকোয়েস্টের সাথে সেই ডেটা অ্যাক্সেস করার সুবিধা দেয়। সেশন ব্যবহারের মাধ্যমে ব্যবহারকারীর ইনফরমেশন একাধিক পেজে বা রিকোয়েস্টে শেয়ার করা যায়। তবে, সেশন ব্যবহারের সময় নিরাপত্তা এবং পারফরমেন্সের বিষয়গুলো খেয়াল রাখতে হয়।
ASP.Net এ সেশন ডেটা সংরক্ষণ এবং ব্যবস্থাপনা হলো একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যার মাধ্যমে আপনি ব্যবহারকারীর সেশন চলাকালীন তথ্য সংরক্ষণ করতে পারেন। সেশন ব্যবস্থাপনা ব্যবহারকারীর বিভিন্ন অনুরোধ এবং পৃষ্ঠা রিফ্রেশের মধ্যে ডেটা সেভ রাখতে সাহায্য করে, যাতে একই ব্যবহারকারী বিভিন্ন পৃষ্ঠায় যেতে পারলেও তার পূর্ববর্তী তথ্য সংরক্ষিত থাকে।
ASP.Net এ সেশন হল একটি মেকানিজম যা সার্ভার সাইডে ব্যবহারকারীর ডেটা সংরক্ষণ করে, যখন সে ওয়েব অ্যাপ্লিকেশনটির বিভিন্ন পেজ বা ফিচার ব্যবহার করছে। সেশন ব্যবহারকারীর একটি ইউনিক session ID তৈরি করে, এবং এই ID ব্যবহার করে সার্ভার সেই ব্যবহারকারীর ডেটা ট্র্যাক এবং সংরক্ষণ করে।
ASP.Net এ সেশন ডেটা সংরক্ষণের জন্য Session
অবজেক্ট ব্যবহার করা হয়। আপনি যেকোনো ডেটা, যেমন স্ট্রিং, ইনটিজার, বা অবজেক্ট সেশন ডেটায় সংরক্ষণ করতে পারেন।
// সেশন ডেটা সংরক্ষণ
Session["Username"] = "JohnDoe";
Session["IsAuthenticated"] = true;
এই ক্ষেত্রে, Session["Username"]
এবং Session["IsAuthenticated"]
হলো দুটি সেশন ভ্যালু যা ব্যবহারকারীর তথ্য সংরক্ষণ করবে।
সেশন ডেটা অ্যাক্সেস করতে আপনি Session
অবজেক্টের মাধ্যমে সংরক্ষিত ডেটা ফিরিয়ে আনতে পারেন।
// সেশন ডেটা অ্যাক্সেস
string username = Session["Username"] as string;
bool isAuthenticated = Convert.ToBoolean(Session["IsAuthenticated"]);
এখানে, Session["Username"]
থেকে স্ট্রিং মান এবং Session["IsAuthenticated"]
থেকে বুলিয়ান মান উদ্ধার করা হয়েছে।
আপনি যদি সেশন থেকে একটি নির্দিষ্ট ভ্যালু মুছে ফেলতে চান, তবে Session.Remove
বা Session.Clear
ব্যবহার করতে পারেন:
Session.Remove("key")
: সেশন থেকে নির্দিষ্ট ভ্যালু মুছে ফেলে।Session.Clear()
: সমস্ত সেশন ভ্যালু মুছে ফেলে।// সেশন থেকে একটি ভ্যালু মুছে ফেলা
Session.Remove("Username");
// সমস্ত সেশন ডেটা মুছে ফেলা
Session.Clear();
ASP.Net এ সেশন একটি নির্দিষ্ট সময়ের জন্য সক্রিয় থাকে এবং পরে স্বয়ংক্রিয়ভাবে শেষ হয়ে যায়। আপনি সেশন টাইমআউট কনফিগার করতে পারেন Web.config ফাইলে:
<system.web>
<sessionState timeout="20" /> <!-- 20 মিনিটের জন্য সেশন সক্রিয় থাকবে -->
</system.web>
এখানে, সেশনটি ২০ মিনিট পরে টাইমআউট হবে যদি ব্যবহারকারী কোনো কার্যকলাপে না থাকে।
ASP.Net এ সেশন ডেটা সংরক্ষণ করার জন্য বিভিন্ন স্টোরেজ মেকানিজম ব্যবহার করা যায়:
আপনি Web.config ফাইলে সেশন স্টোরেজ কনফিগার করতে পারেন:
<system.web>
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="20" />
</system.web>
এখানে, mode="StateServer"
দ্বারা সেশন ডেটা আলাদা সার্ভারে সংরক্ষিত হবে এবং stateConnectionString
দ্বারা স্টেট সার্ভারের ঠিকানা নির্ধারণ করা হয়েছে।
সেশন হাইজ্যাকিং এবং সেশন ফিক্সেশন থেকে সুরক্ষা নিশ্চিত করা অত্যন্ত গুরুত্বপূর্ণ। সেশন সুরক্ষিত করতে নিচের পদক্ষেপ গ্রহণ করা যেতে পারে:
<system.web>
<httpCookies sameSite="Strict" />
</system.web>
ASP.Net সেশন স্টোরেজ সাধারণত কুকি ব্যবহার করে সেশন ID শনাক্ত করে। যদিও In-Process মডেলে সেশন ডেটা সার্ভারের মেমরিতে থাকে, তবে সেশন ID কুকিতে থাকে, যা ক্লায়েন্ট থেকে সার্ভারে রিকোয়েস্ট পাঠানোর সময় ব্যবহৃত হয়।
এভাবে, ASP.Net এর সেশন ব্যবস্থাপনা আপনি সহজেই ব্যবহারকারী সেশন ডেটা সংরক্ষণ, অ্যাক্সেস এবং সুরক্ষিত করতে পারেন।
কুকিজ (Cookies) হলো ছোট আকারের ডেটা যা ব্রাউজারে সংরক্ষণ করা হয় এবং এটি সার্ভার এবং ক্লায়েন্ট (ব্যবহারকারী) এর মধ্যে ডেটা শেয়ার করতে সাহায্য করে। কুকিজ সাধারণত ব্যবহারকারীর সেশন তথ্য, প্রিফারেন্স, লগইন স্টেটাস, বা অন্য কোন ট্র্যাকিং ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। ASP.Net এ কুকিজ পরিচালনা করা সহজ এবং এটি প্রোগ্রামিং লজিকের সাথে সংযুক্ত করা যায়।
ASP.Net তে কুকিজ তৈরি করতে HttpCookie ক্লাস ব্যবহার করা হয়। কুকি তৈরি করতে আপনি একটি HttpCookie
অবজেক্ট তৈরি করবেন, তারপর তা Response.Cookies
এর মাধ্যমে ব্রাউজারে পাঠাবেন।
public ActionResult SetCookie()
{
// একটি কুকি তৈরি করা
HttpCookie cookie = new HttpCookie("UserPreference");
cookie.Value = "DarkMode"; // কুকির মান সেট করা
cookie.Expires = DateTime.Now.AddDays(1); // কুকি ১ দিন পর এক্সপায়ার হবে
Response.Cookies.Add(cookie); // কুকি রেসপন্সে যোগ করা
return Content("Cookie Set Successfully");
}
এখানে, UserPreference নামে একটি কুকি তৈরি করা হয়েছে যার মান DarkMode এবং এটি ১ দিন পরে এক্সপায়ার হবে। কুকি সেট করার পর এটি Response.Cookies.Add() দিয়ে ব্রাউজারে পাঠানো হবে।
কুকিজ থেকে ডেটা গ্রহণ করতে Request.Cookies ব্যবহার করা হয়। এর মাধ্যমে, আপনি কুকির নামের ভিত্তিতে সেই কুকির মান পেতে পারেন।
public ActionResult GetCookie()
{
// কুকি থেকে মান নেয়া
HttpCookie cookie = Request.Cookies["UserPreference"];
if (cookie != null)
{
string preference = cookie.Value; // কুকির মান পাওয়া
return Content("User Preference: " + preference);
}
else
{
return Content("Cookie not found");
}
}
এখানে, Request.Cookies ব্যবহার করে কুকির মান বের করা হয়েছে। যদি কুকি পাওয়া যায়, তবে তা প্রদর্শন করা হবে, অন্যথায় একটি মেসেজ দেখানো হবে যে কুকি পাওয়া যায়নি।
কুকি মুছে ফেলার জন্য Response.Cookies ব্যবহার করা হয় এবং কুকির Expires
প্রপার্টি অতীতের সময় সেট করা হয়। এতে কুকিটি ব্রাউজার থেকে মুছে যাবে।
public ActionResult DeleteCookie()
{
// কুকি মুছে ফেলা
HttpCookie cookie = new HttpCookie("UserPreference");
cookie.Expires = DateTime.Now.AddDays(-1); // কুকির এক্সপায়ার সময় অতীতের দিন সেট করা
Response.Cookies.Add(cookie); // কুকি রেসপন্সে যোগ করা
return Content("Cookie Deleted Successfully");
}
এখানে, কুকির Expires প্রপার্টি অতীতের দিন (যেমন, ১ দিন পূর্বে) সেট করা হয়েছে। এর ফলে, কুকি ব্রাউজার থেকে মুছে যাবে।
কুকি ব্যবহারে সিকিউরিটি একটি গুরুত্বপূর্ণ বিষয়। কিছু সিকিউরিটি বৈশিষ্ট্য যোগ করে কুকির নিরাপত্তা বাড়ানো যেতে পারে।
HttpCookie cookie = new HttpCookie("UserPreference");
cookie.Value = "DarkMode";
cookie.Secure = true; // শুধুমাত্র HTTPS এ কাজ করবে
Response.Cookies.Add(cookie);
HttpCookie cookie = new HttpCookie("UserPreference");
cookie.Value = "DarkMode";
cookie.HttpOnly = true; // কুকি JavaScript দ্বারা অ্যাক্সেসযোগ্য হবে না
Response.Cookies.Add(cookie);
ASP.Net তে কুকির Expires প্রপার্টি দ্বারা কুকির জীবনকাল নির্ধারণ করা হয়। কুকির Expires সেট না করলে, তা Session Cookie হিসেবে আচরণ করবে এবং ব্রাউজার বন্ধ করার পর কুকি মুছে যাবে।
HttpCookie cookie = new HttpCookie("UserPreference");
cookie.Value = "LightMode";
cookie.Expires = DateTime.Now.AddDays(7); // কুকি ৭ দিন পর এক্সপায়ার হবে
Response.Cookies.Add(cookie);
ASP.Net এ কুকিজ ব্যবহার করার মাধ্যমে আপনি ব্যবহারকারীর পছন্দ, লগইন তথ্য বা অন্যান্য তথ্য সংরক্ষণ করতে পারেন। কুকি তৈরি, পড়া এবং মুছে ফেলা সহজ এবং তা সিস্টেমের মধ্যে যোগাযোগের জন্য একটি কার্যকরী উপায় হতে পারে। তবে, কুকি ব্যবহারের সময় সিকিউরিটি বিষয়গুলো যেমন Secure এবং HttpOnly ফ্ল্যাগ ব্যবহারের কথা মাথায় রাখতে হবে।
ASP.Net অ্যাপ্লিকেশনে Authentication এবং Authorization হল নিরাপত্তার দুটি মূল অংশ যা ব্যবহারকারীদের সনাক্তকরণ এবং তাদের অ্যাক্সেস কন্ট্রোল নিশ্চিত করে। কুকিজ (Cookies) ব্যবহার করে এই প্রক্রিয়াগুলিকে আরো সহজ এবং কার্যকর করা যায়। কুকিজ ব্যবহার করে, একটি অ্যাপ্লিকেশন ব্যবহারকারীর সেশন এবং অথেন্টিকেশন তথ্য সংরক্ষণ করতে পারে এবং পুনরায় ব্যবহার করার জন্য সেগুলিকে পাঠাতে পারে।
ASP.Net Core অ্যাপ্লিকেশনগুলিতে, কুকিজ সাধারণত Authentication এবং Authorization এর জন্য ব্যবহৃত হয়।
ASP.Net Core এ, কুকিজ ব্যবহারের মাধ্যমে ইউজারের সেশন পরিচালনা এবং নিরাপত্তা নিশ্চিত করা যায়। এটি সাধারণত AuthenticationMiddleware এর মাধ্যমে কনফিগার করা হয়। কুকিজে JWT (JSON Web Token) বা claims সংরক্ষণ করা যেতে পারে, যাতে নিরাপদে ব্যবহারকারীর তথ্যটি পরিচালনা করা যায়।
ASP.Net Core অ্যাপ্লিকেশনে কুকিজ ব্যবহার করে Authentication কনফিগার করার জন্য আপনাকে Startup.cs ফাইলে কিছু কনফিগারেশন করতে হবে। সাধারণত, কুকিজ ভিত্তিক অথেন্টিকেশন ব্যবহার করার জন্য ASP.Net Core এ Cookie Authentication মডিউল ব্যবহার করা হয়।
প্রথমে Startup.cs ফাইলের ConfigureServices মেথডে কুকিজ অথেন্টিকেশন সেবা নিবন্ধন করতে হবে।
public void ConfigureServices(IServiceCollection services)
{
// কুকিজ অথেন্টিকেশন সার্ভিস রেজিস্টার করা হচ্ছে
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/Account/Login"; // লগইন পেজের রুট
options.AccessDeniedPath = "/Account/AccessDenied"; // অ্যাক্সেস ডিনাইড পেজ
});
services.AddControllersWithViews();
}
এখানে, AddCookie
মেথডটি কুকিজ ভিত্তিক অথেন্টিকেশন কনফিগার করে এবং লগইন এবং অ্যাক্সেস ডিনাইড পেজ নির্ধারণ করে।
এখন Configure মেথডে AuthenticationMiddleware যুক্ত করুন।
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
// Authentication middleware যুক্ত করা
app.UseAuthentication();
// Authorization middleware যুক্ত করা
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
এখানে app.UseAuthentication()
এবং app.UseAuthorization()
middleware ব্যবহার করে, অ্যাপ্লিকেশনকে authentication এবং authorization নিশ্চিত করা হয়।
এখন, কুকিজে অথেন্টিকেশন তথ্য সংরক্ষণ করার জন্য একটি Login অ্যাকশন তৈরি করতে হবে। ব্যবহারকারী সফলভাবে লগইন করলে, একটি কুকি তৈরি করে ব্যবহারকারীকে সিস্টেমে প্রবেশাধিকার দেওয়া হবে।
public class AccountController : Controller
{
private readonly IAuthenticationService _authenticationService;
public AccountController(IAuthenticationService authenticationService)
{
_authenticationService = authenticationService;
}
[HttpPost]
public async Task<IActionResult> Login(string username, string password)
{
// ইউজারের তথ্য যাচাই
if (IsValidUser(username, password))
{
var claims = new List<Claim>
{
new Claim(ClaimTypes.Name, username), // ইউজার নাম কুকিতে সংরক্ষণ
// অন্যান্য claims যেমন রোল বা পারমিশনও যোগ করা যেতে পারে
};
var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
var principal = new ClaimsPrincipal(identity);
// কুকিতে লগইন তথ্য সংরক্ষণ
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);
return RedirectToAction("Index", "Home");
}
// ইউজার সঠিক নয়
return View();
}
private bool IsValidUser(string username, string password)
{
// সঠিক ব্যবহারকারী যাচাই করা (এটি উদাহরণস্বরূপ)
return username == "admin" && password == "password";
}
}
এখানে, SignInAsync
মেথডটি কুকিজে ইউজারের claims ইনজেক্ট করে এবং ইউজারকে লগইন করা হয়।
কুকিজ ব্যবহারের মাধ্যমে Authorization কনফিগারেশন করা হয় যাতে নির্দিষ্ট রোল বা পারমিশন অনুযায়ী ইউজারদের অ্যাক্সেস প্রদান করা যায়।
[Authorize(Roles = "Admin")]
public IActionResult AdminPage()
{
return View();
}
এখানে, শুধুমাত্র Admin রোল থাকা ইউজারদের AdminPage অ্যাক্সেস করতে দেওয়া হবে।
Claims-based authorization এর মাধ্যমে, ইউজারের একটি নির্দিষ্ট claim এর ভিত্তিতে অনুমোদন করা হয়।
[Authorize(ClaimTypes.Name, "admin")]
public IActionResult AdminDashboard()
{
return View();
}
এখানে, Name claim যাচাই করা হচ্ছে এবং শুধুমাত্র "admin" নামের ইউজারদের AdminDashboard অ্যাক্সেস দেওয়া হবে।
অ্যাপ্লিকেশন থেকে লগআউট করার জন্য কুকিজ মুছে ফেলা হয়।
public async Task<IActionResult> Logout()
{
await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
return RedirectToAction("Index", "Home");
}
এখানে, SignOutAsync
মেথডটি কুকি মুছে দেয় এবং ইউজারকে সিস্টেম থেকে লগআউট করে।
ASP.Net Core এ কুকিজ ব্যবহার করে Authentication এবং Authorization নিশ্চিত করা যায়। কুকিজ ব্যবহারের মাধ্যমে, আপনি ব্যবহারকারীর সেশন তথ্য এবং অনুমোদন বিস্তারিত নিরাপদে সংরক্ষণ করতে পারেন এবং বিভিন্ন রোল বা পারমিশনের উপর ভিত্তি করে তাদের অ্যাক্সেস কন্ট্রোল করতে পারেন।
Read more